mysql_store_result hat gefehlt.
Versuche es so:
public OnPlayerCarsLoad(playerid)
{
	new query[128];
	format(query,sizeof(query),"SELECT * FROM autos WHERE besitzer='%i'",PlayerInfo[playerid][pMySQLID]);
	mysql_query(query);
	printf("query = %s", query);
	mysql_store_result();
	SendClientMessage(playerid,COLOR_RED,"Bis hier geht es");
	new num_rows = mysql_num_rows();
	printf("%i num rows",num_rows);
	for(new i=0; i<num_rows; i++)
	{
		new id=getFreeCarID();
		SendClientMessage(playerid,COLOR_RED,"Bis hier geht es auch");
		cInfo[i][carmodel] = mysql_GetIntByInt("autos","model","besitzer",PlayerInfo[playerid][pMySQLID]);
		cInfo[i][besitzer] = mysql_GetIntByInt("autos","besitzer","besitzer",PlayerInfo[playerid][pMySQLID]);
		cInfo[i][c_x] = mysql_GetFloatByInt("autos","x","besitzer",PlayerInfo[playerid][pMySQLID]);
		cInfo[i][c_y] = mysql_GetFloatByInt("autos","y","besitzer",PlayerInfo[playerid][pMySQLID]);
		cInfo[i][c_z] = mysql_GetFloatByInt("autos","z","besitzer",PlayerInfo[playerid][pMySQLID]);
		cInfo[i][c_r] = mysql_GetFloatByInt("autos","r","besitzer",PlayerInfo[playerid][pMySQLID]);
		cInfo[i][db_id] = mysql_GetIntByInt("autos","id","besitzer",PlayerInfo[playerid][pMySQLID]);
		cInfo[i][id_x]=CreateVehicle(cInfo[i][carmodel],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],-1,-1,-1);
	}
	mysql_free_result();
	return 1;
}
Autos laden nicht
- timm462f
- Geschlossen
- Erledigt
- 
			
- 
			
- 
			// Edit es lädt aber immer noch die gleiche Vehicleid und kein anderes Was meinst du damit? 
- 
			meld dich mal bei mir ts.mvs-reallife.de 
 oder skype nils-l.1
 dann gehen wir das problem mal anders an
- 
			Ich habe 2 Autos aber es lädt 2 mal ein Infernus  
- 
			Wie es mir scheint lässt du in die Variablen für das Fahrzeug auch nur den Eintrag von der "id" "PlayerInfo[playerid][pMySQLID]" auslesen. 
- 
			Müsste ich das Model dann auch mit bei machen? 
- 
			Ich verstehe deine Frage nicht. 
- 
			Müsste das dann so? cInfo[i][carmodel] = mysql_GetIntByInt("autos","model","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]); 
 cInfo[i][besitzer] = mysql_GetIntByInt("autos","besitzer","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
 cInfo[i][color_1] = mysql_GetIntByInt("autos","farbe1","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
 cInfo[i][color_2] = mysql_GetIntByInt("autos","farbe2","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
 cInfo[i][c_x] = mysql_GetFloatByInt("autos","x","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
 cInfo[i][c_y] = mysql_GetFloatByInt("autos","y","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
 cInfo[i][c_z] = mysql_GetFloatByInt("autos","z","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
 cInfo[i][c_r] = mysql_GetFloatByInt("autos","r","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
 cInfo[i][db_id] = mysql_GetIntByInt("autos","id","besitzer","model",PlayerInfo[playerid][pMySQLID],cInfo[i][carmodel]);
 cInfo[i][id_x]=CreateVehicle(cInfo[i][carmodel],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][color_1],cInfo[i][color_2],-1);
- 
			Kannst du mal die mysql_GetIntByInt Funktion posten? 
- 
						
- 
			Ctock mysql_GetIntByInt(Table[], Field[], Where[], Where2) { new Get[128]; format(query, 128, "SELECT %s FROM %s WHERE %s = '%d'", Field, Table, Where, Where2); //mysql_query(query,-1,0,connection); mysql_query(query,-1,0,connection1); mysql_query(query); mysql_store_result(); mysql_fetch_row(Get,"|"); return strval(Get); }
- 
			Dann geht es so gar nicht, sondern muss so aussehen: 
 public OnPlayerCarsLoad(playerid)
 {
 new query[128], data[256];
 format(query,sizeof(query),"SELECT * FROM autos WHERE besitzer='%i'",PlayerInfo[playerid][pMySQLID]);
 mysql_query(query);
 printf("query = %s", query);
 mysql_store_result();
 SendClientMessage(playerid,COLOR_RED,"Bis hier geht es");
 new num_rows = mysql_num_rows();
 printf("%i num rows",num_rows);
 if(num_rows > 0)
 {
 while(mysql_fetch_row(data))
 {
 new i=getFreeCarID();
 SendClientMessage(playerid,COLOR_RED,"Bis hier geht es auch");
 mysql_fetch_field("model",data); cInfo[i][carmodel] = strval(data);
 mysql_fetch_field("besitzer",data); cInfo[i][besitzer] = strval(data);
 mysql_fetch_field("x",data); cInfo[i][c_x] = floatstr(data);
 mysql_fetch_field("y",data); cInfo[i][c_y] = floatstr(data);
 mysql_fetch_field("z",data); cInfo[i][c_z] = floatstr(data);
 mysql_fetch_field("r",data); cInfo[i][c_r] = floatstr(data);
 mysql_fetch_field("id",data); cInfo[i][db_id] = strval(data);
 cInfo[i][id_x] = CreateVehicle(cInfo[i][carmodel],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],-1,-1,-1);
 }
 }
 mysql_free_result();
 return 1;
 }
- 
			Danke, das geht schon mal und wie kann ich das Kennzeichen aus der DB lesen lassen und dann so setzten lassen? SetVehicleNumberPlate(cInfo[i][id_x],cInfo[i][kennzeichen]); 
- 
			mysql_fetch_field("kennzeichen",data); format(cInfo[i][kennzeichen], 64, data); Das SetVehicleNumberPlate dann direkt unter dem CreateVehicle. 
- 
			Es steht jetzt nur eine 1 am Nummernschild 
- 
			Hast du im enum das kennzeichen als Array deklariert? 
 Sprich so:
 kennzeichen[64],Wenn nicht, mache das so. 
- 
			Ja habe ich 
 enum carEnum{
 id_x,
 carmodel,
 besitzer,
 Float:c_x,
 Float:c_y,
 Float:c_z,
 Float:c_r,
 color_1,
 color_2,
 db_id,
 kennzeichen[64],
 zugelassen,
 }
- 
			Wie sieht dein OnPlayerCarsLoad aktuell aus? 
- 
			Wie sieht dein OnPlayerCarsLoad aktuell aus? 
 public OnPlayerCarsLoad(playerid)
 {
 new query[128], data[356];
 format(query,sizeof(query),"SELECT * FROM autos WHERE besitzer='%i'",PlayerInfo[playerid][pMySQLID]);
 mysql_query(query);
 printf("query = %s", query);
 mysql_store_result();
 new num_rows = mysql_num_rows();
 printf("%i num rows",num_rows);
 if(num_rows > 0)
 {
 while(mysql_fetch_row(data))
 {
 new i=getFreeCarID();
 mysql_fetch_field("model",data); cInfo[i][carmodel] = strval(data);
 mysql_fetch_field("besitzer",data); cInfo[i][besitzer] = strval(data);
 mysql_fetch_field("Farbe1",data); cInfo[i][color_1] = strval(data);
 mysql_fetch_field("Farbe2",data); cInfo[i][color_2] = strval(data);
 mysql_fetch_field("x",data); cInfo[i][c_x] = floatstr(data);
 mysql_fetch_field("y",data); cInfo[i][c_y] = floatstr(data);
 mysql_fetch_field("z",data); cInfo[i][c_z] = floatstr(data);
 mysql_fetch_field("r",data); cInfo[i][c_r] = floatstr(data);
 mysql_fetch_field("id",data); cInfo[i][db_id] = strval(data);
 mysql_fetch_field("kennzeichen",data); format(cInfo[i][kennzeichen], 64, data);
 cInfo[i][id_x] = CreateVehicle(cInfo[i][carmodel],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][color_1],cInfo[i][color_2],-1);
 SetVehicleNumberPlate(cInfo[i][id_x],cInfo[i][kennzeichen]);
 }
 }
 mysql_free_result();
 return 1;
 }
- 
			Das passt. 
 Steht das Kennzeichen korrekt in der Datenbank drin, und ist die Spalte in der Datenbank ein VARCHAR mit genügend Zeichen?
- 
						
 
		 
		
		
	



